package Thread;

/**
 * 线程创建方式二的匿名内部类写法：
 * 1.创建Runnable的匿名内部类对象（任务对象）
 * 2.把任务对象交给Thread处理
 * 3.调用线程对象的start方法启动线程
 */
public class ThreadTest2_2 {
    public static void main(String[] args){
        Runnable target = new Runnable(){
            @Override
            public void run(){
                for(int i = 1; i <= 5; i++){
                    System.out.println("子线程1输出：" + i);
                }
            }
        };
        new Thread(target).start();

        // 简化形式1：直接将任务对象作为线程对象的参数
        new Thread(new Runnable(){
            @Override
            public void run(){
                for(int i = 1; i <= 5; i++){
                    System.out.println("子线程2输出：" + i);
                }
            }
        }).start();

        // 简化形式2：lambda表达式
        new Thread(() -> {
                for(int i = 1; i <= 5; i++){
                    System.out.println("子线程3输出：" + i);
            }
        }).start();


        for(int i = 1; i <= 5; i++){
            System.out.println("主线程输出：" + i);
        }
    }
}
